package top.chmin.project.cloud.common.entity.label.value.auto;


import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import top.chmin.project.cloud.common.entity.Page;

import java.time.LocalDateTime;

/**
 * chmin
 * 2023-12-27 15:15:33
 * cloud-builder
 */
public interface EntityLabelValueSelectPage {

    @PostMapping("/au/entityLabelValue/selectPage")
    Page<Result> selectPage(@RequestBody Param param);

    @Getter
    @Setter
    @Accessors(chain = true)
    class Param extends Page<Result> {
        // 适用数据结构
        String dataApiType;
        // Value属性名称
        String valueFieldCode;
        // Label属性名称
        String labelFieldCode;
        // 实体编码
        String tableCode;
        // 修改人
        String updateBy;
        // 创建人
        String createBy;
        // ID
        Long id;
        // 修改时间
        LocalDateTime[] updateTime;
        // 创建时间
        LocalDateTime[] createTime;
    }

    @Getter
    @Setter
    @Accessors(chain = true)
    class Result {
        // 适用数据结构
        String dataApiType;
        // Value属性名称
        String valueFieldCode;
        // Label属性名称
        String labelFieldCode;
        // 实体编码
        String tableCode;
        // 修改时间
        LocalDateTime updateTime;
        // 创建时间
        LocalDateTime createTime;
        // 修改人
        String updateBy;
        // 创建人
        String createBy;
        // ID
        Long id;
// field relation auto
// #bind.field.tableCode#

        // 实体编码
        String tableCodeLabel;
// $bind.field.tableCode$

// #bind.field.labelFieldCode#

        // 字段编码
        String labelFieldCodeLabel;
// $bind.field.labelFieldCode$

// #bind.field.valueFieldCode#

        // 字段编码
        String valueFieldCodeLabel;
// $bind.field.valueFieldCode$

    }

}
